import 'package:flutter/material.dart';
import 'package:flutter_fai_webview/flutter_fai_webview.dart';
import 'package:flutter/services.dart';
import 'package:al_pay_flutter/pages/untils/screen.dart';

class EvaluatePage extends StatefulWidget {
  @override
  _EvaluatePageState createState() => _EvaluatePageState();
}

class _EvaluatePageState extends State<EvaluatePage> {
  String message = 's';
  FaiWebViewController _faiWebViewController = new FaiWebViewController();

  ///读取静态Html
  Future<String> loadingLocalAsset() async {
    ///加载
    String htmlData = await rootBundle.loadString('assets/test.html');
    // print("加载数据完成 $htmlData");
    return htmlData;
  }

  ///异步加载静态资源目录下的Html
  FutureBuilder<String> buildFutureBuilder() {
    return FutureBuilder<String>(
      ///异步加载数据
      future: loadingLocalAsset(),

      ///构建
      builder: (BuildContext context, var snap) {
        ///加载完成的html数据
        String htmlData = snap.data;
        //使用插件 FaiWebViewWidget
        if (htmlData == null) {
          return CircularProgressIndicator();
        }

        ///通过配置 htmlBlockData 来渲染
        return buildFaiWebViewWidget(htmlData);
      },
    );
  }

  ///通过url加载页面
  FaiWebViewWidget buildFaiWebViewWidget(htmlData) {
    return FaiWebViewWidget(
      //webview 加载网页链接，
      // url: 'https://www.baidu.com',
      url: 'http://0.0.0.0:10086/',
      //本地html
      // htmlBlockData: htmlData,
      //webview 加载信息回调
      callback: callBack,
      //图片回调
      // imageCallBack: null,
      //控制器
      controller: _faiWebViewController,
      // webViewHeight: 1086.h,
      // webViewHeight: MediaQuery.of(context).size.height -
      //     MediaQuery.of(context).padding.bottom -
      //     MediaQuery.of(context).padding.top -
      //     140,
      //输出日志
      isLog: true,
      // appBar: AppBar(
      //   title: Text('asdf'),
      // ),
      //HTML中的图片添加点击事件
      // htmlImageIsClick: true,
    );
  }

  ///加载 Html 的回调
  ///[code]消息类型标识
  ///[msg] 消息内容
  ///[content] 回传的参数
  void callBack(int code, String msg, content) {
    //加载页面完成后 对页面重新测量的回调
    //这里没有使用到
    //当FaiWebViewWidget 被嵌套在可滑动的 widget 中，必须设置 FaiWebViewWidget 的高度
    //设置 FaiWebViewWidget 的高度 可通过在 FaiWebViewWidget 嵌套一层 Container 或者 SizeBox
    if (code == 201) {
      //页面加载完成后 测量的 WebView 高度
      double webViewHeight = content;
      print("webViewHeight1 " + webViewHeight.toString());
    } else if (code == 402) {
      //加载完成
    } else if (code == 202) {
      //调用js
      print({'content': content});
    }
    setState(() {
      message = "回" + code.toString() + msg.toString();
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(message),
      ),
      body: SafeArea(
        child: Container(
          child: buildFutureBuilder(),
        ),
      ),
    );
  }
}
